﻿namespace WriterStars.Data.Repository
{
    using System.Data.Entity;
    using System.Data.Entity.Infrastructure;
    using WriterStars.Model;

    public interface IWriterStarsDbContext
    {
        DbSet<T> Set<T>() where T : class;

        IDbSet<User> Users { get; set; }

        IDbSet<Book> Books { get; set; }

        IDbSet<Tag> Tags { get; set; }

        IDbSet<Like> Likes { get; set; }

        IDbSet<Author> Authors { get; set; }

        IDbSet<ContestBook> ContestBooks { get; set; }

        IDbSet<Contest> Contests { get; set; }

        IDbSet<UserCategory> UserCategories { get; set; }

        int SaveChanges();

        void Dispose();

        DbEntityEntry Entry(object original);
    }

}
